

package com.scs.application.modules.msg.entity;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.scs.application.core.model.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;

/**
* 已推送记录实体对象
*/
@TableName("pushed_record")
@Data
@EqualsAndHashCode(callSuper = false)
@ToString(callSuper = true)
@Accessors(chain = true)
public class MscmPushedRecord extends BaseEntity implements Serializable {

    @TableId(type = IdType.ID_WORKER_STR)
    private String id;

    /** 场景标识 */
    @NotBlank(message="场景标识不能为空")
    @Length(min=1, max=50, message="场景标识长度必须介于 1 和 50 之间")
    private String sceneCode;

    /** 消息类型 */
    @NotBlank(message="消息类型不能为空")
    @Length(min=1, max=20, message="消息类型长度必须介于 1 和 20 之间")
    private String msgType;

    /** 消息标题 */
    @NotBlank(message="消息标题不能为空")
    @Length(min=1, max=50, message="消息标题长度必须介于 1 和 50 之间")
    private String title;

    /** 消息内容 */
    @NotBlank(message="消息内容不能为空")
    @Length(min=1, max=100, message="消息内容长度必须介于 1 和 100 之间")
    private String content;

    /** 消息参数 */
    private JSONObject params;

    /** 业务主键 */
    @Length(max=50, message="业务主键长度必须介于 0 和 50 之间")
    private String bizKey;

    /** 业务类型 */
    @Length(max=50, message="业务类型长度必须介于 0 和 50 之间")
    private String bizType;

    /** 接收者账号 */
    @NotBlank(message="接收者账号不能为空")
    @Length(min=1, max=50, message="接收者账号长度必须介于 1 和 50 之间")
    private String receiver;

    /** 是否成功 */
    @NotBlank(message="是否成功不能为空")
    @Length(min=1, max=1, message="是否成功长度必须介于 1 和 1 之间")
    private Integer isSuccess;

    /** 异常消息 */
    private String exceptionMsg;

    private Date gmtCreate;

    private String pushedIp;

    public static final int SUCCESS = 1;
    public static final int UNSUCCESS = 0;
}
